package com.zcxy.fast.controller;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zcxy.fast.anotation.Log;
import com.zcxy.fast.bean.PageQuery;
import com.zcxy.fast.bean.Response;
import com.zcxy.fast.entity.SysTest;
import com.zcxy.fast.vo.SysTestVo;
import com.zcxy.fast.service.ISysTestService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * 单表代码生成组件以及校验测试Controller
 *
 * @author zcc
 * @email  860474958@qq.com
 * @date   2021-01-07 11:18:42
 */
@RestController
@RequestMapping("/api/sysTest")
@Api(tags = "单表代码生成组件以及校验测试管理")
@Slf4j
public class SysTestController {
    @Autowired
    private ISysTestService iSysTestService;

    @Log("获取单表代码生成组件以及校验测试数据--分页")
    @PostMapping(value = "/queryPageList")
    @ApiOperation(value = "获取(单表代码生成组件以及校验测试)分页数据列表", notes = "获取(单表代码生成组件以及校验测试)分页数据列表")
    public Response<IPage<SysTestVo>> queryPageList(@RequestBody PageQuery<SysTest> queryVo) {
        return Response.ok(iSysTestService.queryPageList(queryVo));
    }

    @Log("获取单表代码生成组件以及校验测试数据-列表")
    @GetMapping(value = "/queryList")
    @ApiOperation(value = "获取单表代码生成组件以及校验测试数据-列表", notes = "获取单表代码生成组件以及校验测试数据-列表")
    public Response<List<SysTestVo>> queryList(SysTest sysTest) {
        return Response.ok(iSysTestService.queryList( sysTest));
    }


    @Log("添加单表代码生成组件以及校验测试数据")
    @PostMapping(value = "/add")
    @ApiOperation(value = "添加单表代码生成组件以及校验测试数据", notes = "添加单表代码生成组件以及校验测试数据")
    public Response addSysTest(@RequestBody @Validated @NotNull SysTest queryVo) {
        iSysTestService.addSysTest(queryVo);
        return Response.ok();
    }


    @Log("修改单表代码生成组件以及校验测试数据")
    @PostMapping(value = "/update")
    @ApiOperation(value = "修改单表代码生成组件以及校验测试数据", notes = "修改单表代码生成组件以及校验测试数据")
    public Response updateSysTest(@RequestBody @Validated @NotNull SysTest queryVo) {
        iSysTestService.updateSysTest(queryVo);
        return Response.ok();
    }


    @Log(value = "批量删除单表代码生成组件以及校验测试")
    @ApiOperation("批量删除单表代码生成组件以及校验测试")
    @PostMapping("/dels")
    public Response deleteByIds(@RequestBody List<String> ids) {
        iSysTestService.removeAllSysTest(ids);
        return Response.ok();
    }

}
